The invention which is claimed herein relates to systems that test the hardware of a digital computer. More particularly, the invention which is claimed herein relates to systems that test the hardware of a digital computer by—a) executing a hardware test program for the digital computer, b) concurrently executing a simulated operator program which simulates the actions of an operator of the hardware test program, and c) concurrently executing a control program for the simulated operator program by which the execution of each command in the simulated operator program can be visually monitored and stopped, and by which the stopped simulated operator program can be edited and restarted at any selectable command.
As used herein, the term “hardware of a digital computer” means the electronic circuits which are in the computer. By comparison, the term “software” means any program of computer commands that is stored in a memory and is executed by the computer hardware.
In the prior art, a common method by which the manufacturer of a digital computer tested the computer's hardware was as follows. Initially, a hardware test program for the computer was written which performed many different tests. The hardware test program usually provided a test program image on a monitor by which an operator would interact with the hardware test program. For example, the test program image would enable an operator to use manual input devices (such as a keyboard and a mouse) to select a particular test and enter selectable test parameters, such a selectable voltage margin or selectable operating temperature.
After the hardware test program was written, it was loaded into a test terminal that was coupled to the computer whose hardware needed to be tested. Next, the operator of the test terminal used manual input devices to manually select a particular test and particular test parameters. Then, the operator started the selected test; and in response, the selected test sent electronic test input signals to the computer hardware and received electronic test output signals back from the computer hardware.
Then the hardware test program would compare the received test output signals to predetermined output signals, and the results would be shown in the test program image on the monitor. If the displayed results indicated that a particular hardware error occurred, the operator would replace a corresponding hardware module in the computer. Thereafter, the operator would use the input devices and the test program image to direct the test program to rerun the same test. Conversely, if the displayed test results indicated that no hardware error occurred, then the operator would use the input devices and test program image to select and run another test in the test program.
One particular problem with the above prior art testing method is that as the hardware of the digital computer grows in complexity, the complexity of how the operator must interact with the test program also grows. As a specific example, the hardware of an ES7000 computer (which is made and sold by Unisys Corporation) includes—a) several instruction processors that operate in parallel, b) more than a gigabyte of semiconductor memory, and c) multiple custom integrated circuit chips which intercouple the instruction processors to the memory. All of this computer hardware is implemented with over one billion transistors; and consequently, the hardware test program is so complex that the operator of the test program is provided with a large instruction manual which lists hundreds of steps on how to interact with the test program via the mouse, keyboard, and test program image.
Attached hereto as Appendix A are some representative pages from the above instruction manual. Step “iii” in section “k” on page 36 of the manual is an example of where the operator clicks the mouse on a particular item that is displayed in the test program image on the monitor. Step “i” in section “m” on page 36 of the manual is an example of where the operator types a particular entry, via the keyboard, in the test program image. Step “iv” in section “r” on page 36 of the manual is an example of where the operator looks for a particular graphic response, in the test program image on the monitor.
To train an operator to understand and perform the hundreds of the steps which are in the above instruction manual, is both time consuming and expensive. Also, to actually test a single ES7000 computer by running and interacting with the test program, as specified in the instruction manual, is a tedious process which is prone to human error.
Therefore, in order to avoid having an operator perform all of the steps which are listed in the above instruction manual, one aspect of the present invention is to provide a simulated operator program which runs on the test terminal concurrently with the hardware test program. This simulated operator program includes commands which simulate—a) an operator clicking a mouse on selected items in the test program image, b) an operator typing information via a keyboard into the test program, and c) an operator comparing actual test results in the test program image to predetermined expected results.
Now in the prior art, U.S. Pat. No. 5,781,720 (hereinafter Parker) teaches that an “application program”, which is of the type that interacts with an operator thru a “graphical user interface”, can be tested by “test script” that simulates the actions of the operator. This is illustrated in FIG. 4 of Parker wherein item 300 is the application program that is being tested; item 307 is the graphical user interface; and item 315 is the test script.
However, providing test script (or a simulated operator program) which simulates the manual actions of an operator at a graphical user interface, gives rise to two other problems. One of these problems is that errors will always occur to some degree in the simulated operator program because the simulated operator program is very large and very complex. In addition, mismatches can occur between the hardware test program and the simulated operator program as both programs are revised to make them run faster and incorporate new features.
In Parker, the handling of an error in the test scripts and/or the application program is illustrated in FIG. 5. There, box 437 is entered when an error is detected. This box 437 is described at lines 32–40 in column 14 which says:                “If the test driver, 320, is unable to execute the requested action because the timeout interval has expired, the test driver reports an error to the test executive, 317 (see box 437). Upon receiving the error report, the test executive can invoke an exception handler. The exception handler may decide either to abort further processing of the script or it may decide to clean up after the error and continue processing, giving control to the next script command after the one which produced the error.”        
However, the present inventor has discovered that the above error handling by Parker has some major problems. These problems and their solutions are non-obvious; and they are summarized herein by the “Brief Summary Of The Invention”.
Accordingly, a primary object of the present invention which is claimed herein is to provide a system for testing the hardware of a digital computer which overcomes the above problems.